<?php

function executeSQL($sqlREQ) {
    $pdo = ConnexionBDD();
    $pdo->exec($sqlREQ);
}

function querySQL($sqlREQ) {
    $pdo = ConnexionBDD();
    $req = $pdo->query($sqlREQ);
    return $req;
}

function ConnexionBDD() {
    $pdo = new PDO('mysql:host=localhost;dbname=newspti', 'root');
    return $pdo;
}

function verifUser($mail, $pass) { //retourne vrai ou faux pour la vérification du mot de pass
    $verif = false;
    $pdo = ConnexionBDD();
    $md5Pass = md5($pass);
    $sql = 'SELECT * FROM user WHERE MAILUSER ="' . $mail . '"';
    $req = $pdo->query($sql);
    while ($row = $req->fetch()) {
        if ($row['passMD5'] == $md5Pass) {
            $verif = true;
        }
    }
    $req->closeCursor();
    return $verif;
}

function coUser() { //retourne vrai ou faux si l'utilisateur est connecté
    $connexion = false;
    if (isset($_POST['mail']) && isset($_POST['pass'])) {

        if (verifUser($_POST['mail'], $_POST['pass'])) {
            $_SESSION['mail'] = $_POST['mail'];
            $_SESSION['pass'] = $_POST['pass'];
            $connexion = true;
        }
    } else {
        if (isset($_SESSION['mail']) && isset($_SESSION['pass'])) {
            if (verifUser($_SESSION['mail'], $_SESSION['pass'])) {
                $connexion = true;
            }
        }
    }
    return $connexion;
}

function isAdmin() { //retourne vrai ou faux si l'utilisateur est un admin
    $admin = false;
    $pdo = ConnexionBDD();
    $sql = 'SELECT * FROM user WHERE MAILUSER ="' . $_SESSION['mail'] . '"';
    $req = $pdo->query($sql);
    while ($row = $req->fetch()) {
        $admin = $row['ADMIN'];
    }
    $req->closeCursor();
    if ($admin == '1') {
        $admin = true;
    }
    return $admin;
}

function getPseudo() { //retourne le pseudo de l'utilisateur connecté
    $pdo = ConnexionBDD();
    $sql = 'SELECT * FROM user WHERE MAILUSER ="' . $_SESSION['mail'] . '"';
    $req = $pdo->query($sql);
    while ($row = $req->fetch()) {
        $pseudo = $row['PSEUDO'];
    }
    $req->closeCursor();
    return $pseudo;
}

function getMail() { // retourne le mail de l'utilisateur connecté
    return $_SESSION['mail'];
}

function getCategories() { // écris les différentes catégories dans <option>
    $pdo = ConnexionBDD();
    $sql = 'SELECT LIBCAT, IDCAT FROM categorie';
    $req = $pdo->query($sql);
    while ($row = $req->fetch()) {
        echo '<OPTION VALUE="' . $row['IDCAT'] . '">' . $row['LIBCAT'] . '</OPTION>';
    }
}

function CreateArticle($titre, $resum, $linkfile, $textImage, $une, $textArt, $idCat) { //créer un nouvel article
    $date = date("d-m-Y  H:i");
    $pdo = ConnexionBDD();
    if ($une) { // un seul article à la une à la fois
        $sqlVerifUne = "UPDATE article SET AlaUne = 0 WHERE AlaUne = 1";
        $pdo->exec($sqlVerifUne);
    } else {
        $une = 0;
    }
    $sql = "INSERT INTO article (MAILUSER, TITRE, LINKIMAGE, TEXTIMAGE, DATEARTICLE, CORPSARTICLE, AlaUne, IDCAT, Resum) VALUES ('" . getMail() . "','" . $titre . "','" . $linkfile . "','" . $textImage . "','" . $date . "','" . $textArt . "','" . $une . "','" . $idCat . "','" . $resum . "')";
    var_dump($sql);
    $pdo->exec($sql);
}

function supprArticle($idArticle) { // supprime l'article en fonction de son ID
    $pdo = ConnexionBDD();
    $sqlSupr = "DELETE FROM Article WHERE IDARTICLE=" . $idArticle . ";";
    $pdo->exec($sqlSupr);
}

function getInfosArticle($idArticle) { // récupère sous forme de tableau les infos d'un article avec son ID
    $pdo = ConnexionBDD();
    $sql = 'SELECT * FROM article a, categorie c WHERE a.IDCAT=c.IDCAT and a.IDARTICLE=' . $idArticle . ';';
    $req = $pdo->query($sql);
    return $req;
}

function getTableauModif() { // récupère le tableau permettant les modifications
    $pdo = ConnexionBDD();
    $sql = 'SELECT PSEUDO, IDARTICLE, TITRE, TEXTIMAGE, DATEARTICLE, CORPSARTICLE, AlaUne FROM article a, user u WHERE a.MAILUSER=u.MAILUSER';
    $req = $pdo->query($sql);
    //affichage de chaque ligne
    while ($row = $req->fetch()) {
        echo '<TR>';
        echo '<TD>' . $row['IDARTICLE'] . '</TD>';
        echo '<TD>' . $row['PSEUDO'] . '</TD>';
        echo '<TD>' . $row['DATEARTICLE'] . '</TD>';
        echo '<TD>' . $row['TITRE'] . '</TD>';
        echo '<TD>' . $row['AlaUne'] . '</TD>';
        // affichage des liens de suppression et de modification.
        echo'<TD> <a href="admin.php?edit=modif&modif=' . $row['IDARTICLE'] . '"><img alt="Modifier" title="Modifier" src="http://localhost/phpmyadmin/themes/original/img/b_edit.png"/></a></TD>
            ';
        if ($row['AlaUne'] == 0) { // impossible de supprimer un article a la une
            echo '<TD><a onclick="return(confirm(\'Etes-vous sûr de vouloir supprimer cette entrée?\'));" href="admin.php?edit=modif&suppr=' . $row['IDARTICLE'] . '"><img alt="Supprimer" title="Supprimer"  src="http://localhost/phpmyadmin/themes/original/img/b_drop.png"/></a></TD>';
        }
        echo '</TR>';
    }
}

function editArticle($idArticle, $titre, $alaune, $textimg, $resum, $idCat, $textArt) { //édite l'article en fonction de son ID
    if ($alaune) {
        $alaune = 1;
    } else {
        $alaune = 0;
    }
    $pdo = ConnexionBDD();
    $sqlEdit = "UPDATE Article
SET TITRE = '" . $titre . "', AlaUne = " . $alaune . ", TEXTIMAGE='" . $textimg . "', Resum = '" . $resum . "', IDCAT=" . $idCat . ", CORPSARTICLE = '" . $textArt . "'
WHERE IDARTICLE = " . $idArticle . ";";
    var_dump($sqlEdit);
    $pdo->exec($sqlEdit);
}

function createUser($pseudo, $mail, $md5pass) {
    $pdo = ConnexionBDD();
    $sql = 'SELECT PSEUDO, MAILUSER FROM USER WHERE PSEUDO = "' . $pseudo . '" OR MAILUSER ="' . $mail . '";';
    $req = $pdo->query($sql);
    $resultats = $req->fetch();
    if ($resultats == false) {
        $sqlINSERT = 'INSERT INTO user VALUES ("' . $mail . '","' . $pseudo . '","' . date("Y-m-d") . '",0,"' . $md5pass . '");';
        executeSQL($sqlINSERT);
        echo 'Votre compte a bien été créé';
    } else {
        echo 'Pseudo ou Mail déjà enregistré';
    }
}

function getUsers() {
    $req = querySQL('SELECT * FROM user;');
    return $req;
}

function supprUser($mailUser) {
    $sql = "DELETE FROM user WHERE MAILUSER='" . $mailUser . "';";
    executeSQL($sql);
}

?>
